ASP.NET Core-এ অ্যাপ্লিকেশনের কনফিগারেশন পরিচালনার জন্য Configuration Files এবং Environment Variables একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি আপনাকে অ্যাপ্লিকেশনের চলমান পরিবেশের জন্য বিভিন্ন সেটিংস কনফিগার করতে এবং ডেটাবেস কানেকশন স্ট্রিং, লগিং কনফিগারেশন, অথবা অ্যাপ্লিকেশনের অন্যান্য প্রপার্টি নিয়ন্ত্রণ করতে সহায়তা করে।
Configuration Files (appsettings.json)
appsettings.json হলো ASP.NET Core অ্যাপ্লিকেশনের মূল কনফিগারেশন ফাইল। এই ফাইলটি সাধারণত অ্যাপ্লিকেশনের বিভিন্ন কনফিগারেশন তথ্য যেমন ডেটাবেস কানেকশন, লগিং কনফিগারেশন, এবং অন্যান্য প্রয়োজনীয় সেটিংস সংরক্ষণ করার জন্য ব্যবহার করা হয়।
appsettings.json ফাইলের গঠন
এটি JSON (JavaScript Object Notation) ফরম্যাটে থাকে এবং এটি হিয়ারার্কিক্যাল ডেটা স্টোর করার সুবিধা দেয়। নিচে একটি সাধারণ appsettings.json ফাইলের উদাহরণ দেখানো হলো:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDb;Trusted_Connection=True;"
},
"AppSettings": {
"ApplicationName": "MyApp",
"Version": "1.0.0"
}
}
এখানে:
- Logging সেকশনে লগ স্তরের কনফিগারেশন।
- ConnectionStrings সেকশনে ডেটাবেস কানেকশন স্ট্রিং।
- AppSettings সেকশনে অ্যাপ্লিকেশনের অন্যান্য কাস্টম সেটিংস যেমন অ্যাপ্লিকেশনের নাম এবং সংস্করণ।
Configuration ফাইল অ্যাক্সেস করা
ASP.NET Core অ্যাপ্লিকেশনে এই কনফিগারেশন ফাইলের তথ্য অ্যাক্সেস করতে IConfiguration ইন্টারফেস ব্যবহার করা হয়। Startup.cs বা Program.cs ফাইলে কনফিগারেশন ডাটা ইনজেক্ট করতে হয়।
public class MyService
{
private readonly IConfiguration _configuration;
public MyService(IConfiguration configuration)
{
_configuration = configuration;
}
public void DisplaySettings()
{
var appName = _configuration["AppSettings:ApplicationName"];
var version = _configuration["AppSettings:Version"];
Console.WriteLine($"Application Name: {appName}, Version: {version}");
}
}
এখানে, AppSettings সেকশন থেকে ApplicationName এবং Version এর মান বের করা হচ্ছে।
Environment-Specific appsettings.json Files
ASP.NET Core পরিবেশের ভিত্তিতে আলাদা কনফিগারেশন ফাইল লোড করতে পারে। যেমন appsettings.Development.json অথবা appsettings.Production.json ফাইল ব্যবহার করে ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য আলাদা কনফিগারেশন করা যায়।
{
"Logging": {
"LogLevel": {
"Default": "Debug"
}
}
}
এটি Development পরিবেশের জন্য হবে, যেখানে লগ লেভেল ডিবাগ থাকবে।
appsettings.json লোড করার কনফিগারেশন
ASP.NET Core অ্যাপ্লিকেশনে এই কনফিগারেশন ফাইলটি লোড করার জন্য ConfigureAppConfiguration মেথড ব্যবহার করা হয়। সাধারণত Program.cs ফাইলে এই কনফিগারেশন করা হয়:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var env = context.HostingEnvironment;
config.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables(); // Environment Variables ব্যবহার করা
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
এখানে, AddJsonFile মেথডের মাধ্যমে পরিবেশ অনুযায়ী কনফিগারেশন ফাইল যোগ করা হয়েছে।
Environment Variables
Environment Variables হলো সিস্টেম স্তরের কনফিগারেশন যা অ্যাপ্লিকেশন চলাকালীন বিভিন্ন পরিবেশের জন্য কনফিগারেশন মান স্টোর করতে ব্যবহৃত হয়। এটি সাধারণত সিস্টেমের সেটিংস বা কনফিগারেশনের জন্য ব্যবহার করা হয়, যেমন ডেটাবেস কানেকশন স্ট্রিং, API কীগুলি, বা অন্যান্য সেনসিটিভ তথ্য যা সরাসরি কোডে না রাখার উপযুক্ত।
Environment Variables সেট করা
আপনি সিস্টেমের Environment Variables ব্যবহার করে কনফিগারেশন প্যারামিটার সেট করতে পারেন। নিচে Windows, macOS, এবং Linux-এ Environment Variables সেট করার উপায় দেখানো হলো।
Windows:
setx MyAppSetting "MyValue"macOS/Linux:
export MyAppSetting="MyValue"
Environment Variables অ্যাক্সেস করা
ASP.NET Core-এ IConfiguration ব্যবহার করে আপনি Environment Variables অ্যাক্সেস করতে পারেন:
public class MyService
{
private readonly IConfiguration _configuration;
public MyService(IConfiguration configuration)
{
_configuration = configuration;
}
public void DisplayEnvironmentSetting()
{
var myValue = _configuration["MyAppSetting"];
Console.WriteLine($"Environment variable MyAppSetting: {myValue}");
}
}
এখানে, MyAppSetting নামক Environment Variable অ্যাক্সেস করা হচ্ছে।
Environment-Specific Configuration
ASP.NET Core পরিবেশ অনুযায়ী কনফিগারেশন ফাইল লোড করতে সক্ষম, যেমন ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের জন্য আলাদা কনফিগারেশন। যখন অ্যাপ্লিকেশনটি বিভিন্ন পরিবেশে রান করে, তখন আপনি পরিবেশের সাথে সম্পর্কিত কনফিগারেশন ব্যবহার করতে পারেন।
ASPNETCORE_ENVIRONMENT=Development dotnet run
এই পরিবেশের জন্য appsettings.Development.json ফাইলটি প্রাধান্য পাবে।
Configuration এবং Environment Variables এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Configuration (appsettings.json) | Environment Variables |
|---|---|---|
| অবস্থান | অ্যাপ্লিকেশন ফাইল সিস্টেমে থাকে | সিস্টেমের পরিবেশে সংরক্ষিত থাকে |
| ব্যবহার | সাধারণত স্থিতিশীল কনফিগারেশন ডেটা | সেনসিটিভ তথ্য বা পরিবেশ-ভিত্তিক সেটিংস |
| লৌকিকতা | একাধিক কনফিগারেশন ফাইল দিয়ে সাজানো হয় | সরাসরি সিস্টেমের পরিবর্তন |
| উদাহরণ | appsettings.json, appsettings.Development.json | MY_APP_SETTING=Value |
সারাংশ
ASP.NET Core-এ Configuration Files (appsettings.json) এবং Environment Variables দুইটি গুরুত্বপূর্ণ কনফিগারেশন সোর্স যা অ্যাপ্লিকেশনের কনফিগারেশন ডেটা পরিচালনা করতে ব্যবহৃত হয়। appsettings.json ফাইল অ্যাপ্লিকেশনের প্রাথমিক কনফিগারেশন স্টোর করে, যেখানে Environment Variables ব্যবহার করা হয় সেনসিটিভ তথ্য এবং পরিবেশ-ভিত্তিক কনফিগারেশন সংরক্ষণ করতে। ASP.NET Core একাধিক কনফিগারেশন সোর্স একত্রে ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন কনফিগারেশন আরও বেশি ফ্লেক্সিবল ও নিরাপদ করে তোলে।